home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / thesource-7.lha / Source / PushBClass.lha / pushbclass / pushbclass.h < prev    next >
C/C++ Source or Header  |  1994-06-11  |  3KB  |  84 lines

  1. /*
  2.  * PushButtonClass
  3.  *
  4.  * A class of buttons built on the "frbuttonclass".  Looks like a button
  5.  * with text centered, and an optional key to underline (for gadget key
  6.  * equivalences).  Use summarized below.
  7.  *
  8.  * Class information
  9.  *
  10.  * Needs:   GA_DrawInfo         - Used in frame and text
  11.  *
  12.  * Uses:    PUSHB_Text (IS)     - optional text to use in push button,
  13.  *                                  I - text to use at creation
  14.  *                                  S - set to new text (setting new text
  15.  *                                      without setting new PUSHB_UPos
  16.  *                                      will get rid of underline
  17.  *
  18.  *          PUSHB_UPos (IS)     - character position in PUSHB_Text to underline
  19.  *                                  I - set underline character at creation
  20.  *                                  S - set new character to underline in text
  21.  *
  22.  *          PUSHB_Default (IS)  - set to TRUE to make this button have the
  23.  *                                  default key look (key that RETURN is
  24.  *                                  equivalent to) *not supported yet*
  25.  *
  26.  *          GA_Left (IS)        - sets LeftEdge of gadget
  27.  *          GA_Top (IS)         - sets TopEdge of gadget
  28.  *          GA_Width (S)        - sets button width after object is made
  29.  *          GA_Height (S)       - sets button height after object is made
  30.  *
  31.  * Do Not Use:  GA_Text, GA_IntuiText, or GA_LabelImage
  32.  *              (I don't check, either, for speed.)
  33.  */
  34.  
  35. #include <exec/types.h>
  36. #include <exec/memory.h>
  37. #include <exec/nodes.h>
  38. #include <exec/ports.h>
  39. #include <intuition/intuition.h>
  40. #include <intuition/classes.h>
  41. #include <intuition/gadgetclass.h>
  42. #include <intuition/imageclass.h>
  43. #include <graphics/text.h>
  44. #include <utility/tagitem.h>
  45.  
  46. #define PUSHB_Text          (TAG_USER + 1)  /* Text in button */
  47. #define PUSHB_UPos          (TAG_USER + 2)  /* character pos to underline */
  48. #define PUSHB_Default       (TAG_USER + 3)  /* Is this the RETURN button? */
  49.  
  50. #define STDPBWIDTH  80
  51. #define STDPBHEIGHT 20
  52.  
  53. /*
  54.  * All of these guys shoud have been in .c
  55.  */
  56.  
  57. struct PushBData { /* private structure for class */
  58.     struct DrawInfo *PBDrawInfo;
  59.     struct IntuiText PBIText1;
  60.     struct IntuiText PBIText2;
  61.     char PBKey[2];
  62. };
  63.  
  64. struct PushBTA { /* private structure for class */
  65.     struct TextAttr PBTextAttr1;
  66.     struct TextAttr PBTextAttr2;
  67. };
  68.  
  69. struct PushBInst { /* private structure for class */
  70.     struct PushBData *PBData;
  71. };
  72.  
  73. /*
  74.  *  Prototypes
  75.  */
  76.  
  77. Class *MakePushBClass(void);
  78. BOOL FreePushBClass(Class *);
  79. struct Gadget *MakePushButton(struct Window *, struct Requester *,
  80.                                 struct DrawInfo *, struct Gadget *,
  81.                                 WORD, WORD, char *, BYTE);
  82. void ChangePushButton(struct Gadget *, struct Window *,
  83.                         struct Requester *, char *, BYTE);
  84.